<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArPTZConnector Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArPTZConnector.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="classArPTZConnector-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArPTZConnector Class Reference<div class="ingroups"><a class="el" href="group__OptionalClasses.html">Optional Classes</a> &#124; <a class="el" href="group__DeviceClasses.html">Device Interface Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Factory for creating and configuring interfaces for pan/tilt units or camera pan/tilt/zoom control based on robot parameter file and command-line arguments.  
 <a href="classArPTZConnector.html#details">More...</a></p>

<p><code>#include &lt;ArPTZConnector.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a60424d3b3343a9040d95d7d8043f3c5b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60424d3b3343a9040d95d7d8043f3c5b"></a>
typedef <a class="el" href="classArGlobalRetFunctor4.html">ArGlobalRetFunctor4</a>&lt; <a class="el" href="classArPTZ.html">ArPTZ</a> *, size_t, <a class="el" href="classArPTZParams.html">ArPTZParams</a>, <a class="el" href="classArArgumentParser.html">ArArgumentParser</a> *, <a class="el" href="classArRobot.html">ArRobot</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>GlobalPTZCreateFunc</b></td></tr>
<tr class="separator:a60424d3b3343a9040d95d7d8043f3c5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e388cec85450c92457ffb128b588014"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e388cec85450c92457ffb128b588014"></a>
typedef <a class="el" href="classArRetFunctor4.html">ArRetFunctor4</a>&lt; <a class="el" href="classArPTZ.html">ArPTZ</a> *, size_t, <a class="el" href="classArPTZParams.html">ArPTZParams</a>, <a class="el" href="classArArgumentParser.html">ArArgumentParser</a> *, <a class="el" href="classArRobot.html">ArRobot</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#a8e388cec85450c92457ffb128b588014">PTZCreateFunc</a></td></tr>
<tr class="memdesc:a8e388cec85450c92457ffb128b588014"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arguments passed to function are PTZ index, parameters, parser (may be null) and robot object (may be null) <br /></td></tr>
<tr class="separator:a8e388cec85450c92457ffb128b588014"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab44a7764293bd09dc7d63e0df7bf2562"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab44a7764293bd09dc7d63e0df7bf2562"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>ArPTZConnector</b> (<a class="el" href="classArArgumentParser.html">ArArgumentParser</a> *argParser, <a class="el" href="classArRobot.html">ArRobot</a> *robot=NULL)</td></tr>
<tr class="separator:ab44a7764293bd09dc7d63e0df7bf2562"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac360c671ec7b96639bc9e73b166d0f7b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#ac360c671ec7b96639bc9e73b166d0f7b">connect</a> ()</td></tr>
<tr class="memdesc:ac360c671ec7b96639bc9e73b166d0f7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true, create the appropriate PTZ object (based on type name) and connect to it.  <a href="#ac360c671ec7b96639bc9e73b166d0f7b">More...</a><br /></td></tr>
<tr class="separator:ac360c671ec7b96639bc9e73b166d0f7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef27c83872cacf1d35a5b20c66c7b533"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#aef27c83872cacf1d35a5b20c66c7b533">connectPTZs</a> ()</td></tr>
<tr class="memdesc:aef27c83872cacf1d35a5b20c66c7b533"><td class="mdescLeft">&#160;</td><td class="mdescRight">For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true, create the appropriate PTZ object (based on type name) and connect to it.  <a href="#aef27c83872cacf1d35a5b20c66c7b533">More...</a><br /></td></tr>
<tr class="separator:aef27c83872cacf1d35a5b20c66c7b533"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7470e3af93aeeec6c169494b3dc12ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArPTZ.html">ArPTZ</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#aa7470e3af93aeeec6c169494b3dc12ce">findPTZ</a> (size_t i) const </td></tr>
<tr class="separator:aa7470e3af93aeeec6c169494b3dc12ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae06d93d082128e873ff05a4c01e93c2d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae06d93d082128e873ff05a4c01e93c2d"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxNumPTZs</b> ()</td></tr>
<tr class="separator:ae06d93d082128e873ff05a4c01e93c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a581670a703c3f1e1c99fcaa53c95c554"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#a581670a703c3f1e1c99fcaa53c95c554">getNumPTZs</a> () const </td></tr>
<tr class="separator:a581670a703c3f1e1c99fcaa53c95c554"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b7815ff4ba358b80eee7ca1a7e46ad7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArPTZ.html">ArPTZ</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#a3b7815ff4ba358b80eee7ca1a7e46ad7">getPTZ</a> (size_t i=0) const </td></tr>
<tr class="separator:a3b7815ff4ba358b80eee7ca1a7e46ad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae530b77b17d5a1e96538c1d2124b115f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classArPTZ.html">ArPTZ</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#ae530b77b17d5a1e96538c1d2124b115f">getPTZs</a> () const </td></tr>
<tr class="separator:ae530b77b17d5a1e96538c1d2124b115f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63ddeae51e4c92839098f21188af8ed4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63ddeae51e4c92839098f21188af8ed4"></a>
<a class="el" href="classArRobot.html">ArRobot</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#a63ddeae51e4c92839098f21188af8ed4">getRobot</a> ()</td></tr>
<tr class="memdesc:a63ddeae51e4c92839098f21188af8ed4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return robot that PTZs are or will be attached to (may be NULL) <br /></td></tr>
<tr class="separator:a63ddeae51e4c92839098f21188af8ed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2a0970004a49434fa4bf31043c3e9ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#af2a0970004a49434fa4bf31043c3e9ec">setMaxNumPTZs</a> (size_t n)</td></tr>
<tr class="memdesc:af2a0970004a49434fa4bf31043c3e9ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change limit on number of PTZ devices.  <a href="#af2a0970004a49434fa4bf31043c3e9ec">More...</a><br /></td></tr>
<tr class="separator:af2a0970004a49434fa4bf31043c3e9ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a906087f7a6cdc62c19603e833ed54413"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#a906087f7a6cdc62c19603e833ed54413">~ArPTZConnector</a> ()</td></tr>
<tr class="separator:a906087f7a6cdc62c19603e833ed54413"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a080ec915958a45d6b1f3f05d589bc993"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#a080ec915958a45d6b1f3f05d589bc993">registerPTZType</a> (const std::string &amp;typeName, <a class="el" href="classArPTZConnector.html#a8e388cec85450c92457ffb128b588014">ArPTZConnector::PTZCreateFunc</a> *func)</td></tr>
<tr class="memdesc:a080ec915958a45d6b1f3f05d589bc993"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a new PTZ type.  <a href="#a080ec915958a45d6b1f3f05d589bc993">More...</a><br /></td></tr>
<tr class="separator:a080ec915958a45d6b1f3f05d589bc993"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a497a97a5b84d27a3a7dd439aed71ae1f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a497a97a5b84d27a3a7dd439aed71ae1f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>logOptions</b> () const </td></tr>
<tr class="separator:a497a97a5b84d27a3a7dd439aed71ae1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57abb96df1537bbbf0e88c29976778cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a57abb96df1537bbbf0e88c29976778cb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>parseArgs</b> ()</td></tr>
<tr class="separator:a57abb96df1537bbbf0e88c29976778cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa612a4f5cc40bf7f6fd15dd020951318"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa612a4f5cc40bf7f6fd15dd020951318"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>parseArgs</b> (<a class="el" href="classArArgumentParser.html">ArArgumentParser</a> *parser)</td></tr>
<tr class="separator:aa612a4f5cc40bf7f6fd15dd020951318"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11414294af27c15f1947c747c0451f6f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11414294af27c15f1947c747c0451f6f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>parseArgsFor</b> (<a class="el" href="classArArgumentParser.html">ArArgumentParser</a> *parser, int which)</td></tr>
<tr class="separator:a11414294af27c15f1947c747c0451f6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab793ac97a226f0de119fa6949716b12b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab793ac97a226f0de119fa6949716b12b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>populateRobotParams</b> (<a class="el" href="classArRobotParams.html">ArRobotParams</a> *params)</td></tr>
<tr class="separator:ab793ac97a226f0de119fa6949716b12b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:af7f0d8d5ef07f4d4dc6d2fc42c0b414c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af7f0d8d5ef07f4d4dc6d2fc42c0b414c"></a>
<a class="el" href="classArArgumentParser.html">ArArgumentParser</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>myArgParser</b></td></tr>
<tr class="separator:af7f0d8d5ef07f4d4dc6d2fc42c0b414c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15d51bcbaa58023efd45f0f65d54c8b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15d51bcbaa58023efd45f0f65d54c8b5"></a>
std::vector&lt; <a class="el" href="classArPTZParams.html">ArPTZParams</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#a15d51bcbaa58023efd45f0f65d54c8b5">myArguments</a></td></tr>
<tr class="memdesc:a15d51bcbaa58023efd45f0f65d54c8b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">from program command-line options (via the parseArgs() callback called by <a class="el" href="classAria.html#a1b090c01d88bb420b8cf8e0384d25ee1" title="Parses the arguments for the program (calls all the callbacks added with addParseArgsCB()) ...">Aria::parseArgs()</a>) <br /></td></tr>
<tr class="separator:a15d51bcbaa58023efd45f0f65d54c8b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9cb93def6d2c2b67395f668458e3c15"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9cb93def6d2c2b67395f668458e3c15"></a>
std::vector&lt; <a class="el" href="classArPTZ.html">ArPTZ</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#af9cb93def6d2c2b67395f668458e3c15">myConnectedPTZs</a></td></tr>
<tr class="memdesc:af9cb93def6d2c2b67395f668458e3c15"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classArPTZ.html" title="Base class which handles the PTZ cameras. ">ArPTZ</a> objects created and initialized in <a class="el" href="classArPTZConnector.html#ac360c671ec7b96639bc9e73b166d0f7b" title="For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true...">connect()</a>. <br /></td></tr>
<tr class="separator:af9cb93def6d2c2b67395f668458e3c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a74c6573022337684d22500791b3894"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8a74c6573022337684d22500791b3894"></a>
<a class="el" href="classArConstFunctorC.html">ArConstFunctorC</a>&lt; <a class="el" href="classArPTZConnector.html">ArPTZConnector</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>myLogOptionsCallback</b></td></tr>
<tr class="separator:a8a74c6573022337684d22500791b3894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10f5dbaa1ec6b7dd6a62bab11a6f1d1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a10f5dbaa1ec6b7dd6a62bab11a6f1d1c"></a>
std::vector&lt; <a class="el" href="classArPTZParams.html">ArPTZParams</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArPTZConnector.html#a10f5dbaa1ec6b7dd6a62bab11a6f1d1c">myParams</a></td></tr>
<tr class="memdesc:a10f5dbaa1ec6b7dd6a62bab11a6f1d1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">copied from <a class="el" href="classArRobotParams.html" title="Stores parameters read from the robot&#39;s parameter files. ">ArRobotParams</a> (via myRobot), then in <a class="el" href="classArPTZConnector.html#ac360c671ec7b96639bc9e73b166d0f7b" title="For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true...">connect()</a> parameters given from command line arguments (myArguments) are merged in. <br /></td></tr>
<tr class="separator:a10f5dbaa1ec6b7dd6a62bab11a6f1d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab0b35d774e4e998f560ae7116e8e9f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab0b35d774e4e998f560ae7116e8e9f3"></a>
<a class="el" href="classArRetFunctorC.html">ArRetFunctorC</a>&lt; bool, <a class="el" href="classArPTZConnector.html">ArPTZConnector</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>myParseArgsCallback</b></td></tr>
<tr class="separator:aab0b35d774e4e998f560ae7116e8e9f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1af399181053da8c2996bcb0761a7ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad1af399181053da8c2996bcb0761a7ce"></a>
<a class="el" href="classArFunctor1C.html">ArFunctor1C</a>&lt; <a class="el" href="classArPTZConnector.html">ArPTZConnector</a>, <a class="el" href="classArRobotParams.html">ArRobotParams</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>myPopulateRobotParamsCB</b></td></tr>
<tr class="separator:ad1af399181053da8c2996bcb0761a7ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49122008ec9c8907b907c668e3c47cdf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49122008ec9c8907b907c668e3c47cdf"></a>
<a class="el" href="classArRobot.html">ArRobot</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>myRobot</b></td></tr>
<tr class="separator:a49122008ec9c8907b907c668e3c47cdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:ae34c18a44be36caf84c20d66265298ea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae34c18a44be36caf84c20d66265298ea"></a>
static std::map&lt; std::string, <a class="el" href="classArPTZConnector.html#a8e388cec85450c92457ffb128b588014">PTZCreateFunc</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ourPTZCreateFuncs</b></td></tr>
<tr class="separator:ae34c18a44be36caf84c20d66265298ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Factory for creating and configuring interfaces for pan/tilt units or camera pan/tilt/zoom control based on robot parameter file and command-line arguments. </p>
<p>First, create an <a class="el" href="classArPTZConnector.html" title="Factory for creating and configuring interfaces for pan/tilt units or camera pan/tilt/zoom control ba...">ArPTZConnector</a> object before calling <a class="el" href="classAria.html#a1b090c01d88bb420b8cf8e0384d25ee1" title="Parses the arguments for the program (calls all the callbacks added with addParseArgsCB()) ...">Aria::parseArgs()</a>. After connecting to the robot, call <a class="el" href="classAria.html#a1b090c01d88bb420b8cf8e0384d25ee1" title="Parses the arguments for the program (calls all the callbacks added with addParseArgsCB()) ...">Aria::parseArgs()</a> to check arguments and parameters from the parameter file(s). Then, call <a class="el" href="classArPTZConnector.html#ac360c671ec7b96639bc9e73b166d0f7b" title="For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true...">connect()</a> to connect to all configured and enabled PTZs. To get access to a PTZ objects, use getPTZ(int i) and <a class="el" href="classArPTZConnector.html#a581670a703c3f1e1c99fcaa53c95c554">getNumPTZs()</a>, or <a class="el" href="classArPTZConnector.html#ae530b77b17d5a1e96538c1d2124b115f">getPTZs()</a>. <a class="el" href="classArPTZ.html" title="Base class which handles the PTZ cameras. ">ArPTZ</a> provides an interface to functions that most PTZ implementations (<a class="el" href="classArPTZ.html" title="Base class which handles the PTZ cameras. ">ArPTZ</a> subclasses) implement. Some PTZ implementations have additional features. Use those subclasse directly to use these additional features (use dynamic_cast to cast an <a class="el" href="classArPTZ.html" title="Base class which handles the PTZ cameras. ">ArPTZ</a> pointer to a subclass pointer, if possible.)</p>
<p><a class="el" href="classArPTZConnector.html" title="Factory for creating and configuring interfaces for pan/tilt units or camera pan/tilt/zoom control ba...">ArPTZConnector</a> has built in support for all the PTZ types with support included in the ARIA library, and other libraries or programs may register new types as well. (For example, the ArVideo library contains support for additional camera PTZ types.)</p>
<p>The following command-line arguments are checked: </p><pre class="fragment">Common PTU and Camera PTZ options:

	-ptzType &lt;type&gt;	Select PTZ/PTU type. Required.  Available types are:
		dpptu
		rvision
		sony
		vcc
		vcc4
		vcc50i
		none
	-ptzInverted &lt;true|false&gt;	If true, reverse tilt and pan axes for cameras mounted upside down.

Only one of the following sets of connection parameters may be given:

For computer serial port connections:
	-ptzSerialPort &lt;port&gt;	Serial port name.

For Pioneer robot auxilliary serial port connections:
	-ptzRobotAuxSerialPort &lt;1|2|3&gt;	Use specified Pioneer robot auxilliary serial port.

For network connections:
	-ptzAddress &lt;address&gt;	Network address or hostname for network connection.
	-ptzTcpPort &lt;port&gt;	TCP port number for network connections.

Parameters for multiple cameras/units may be given like: -ptz1Type, -ptz2Type, -ptz3Type, etc.
Some PTZ/PTU types may accept additional type-specific options. Refer to option documentation text specific to those types.
</pre><p>PTZs are 0-indexed internally in this class, however, argument names, parameter names and log messages displayed to users are 1-indexed.</p>
<dl class="section since"><dt>Since</dt><dd>2.7.6 </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="cameraPTZExample_8cpp-example.html#_a5">cameraPTZExample.cpp</a>.</dd>
</dl></div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a906087f7a6cdc62c19603e833ed54413"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArPTZConnector::~ArPTZConnector </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ac360c671ec7b96639bc9e73b166d0f7b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArPTZConnector::connect </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true, create the appropriate PTZ object (based on type name) and connect to it. </p>
<dl class="section return"><dt>Returns</dt><dd>false on first error, true if all PTZ connections were successful. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="cameraPTZExample_8cpp-example.html#a15">cameraPTZExample.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="aef27c83872cacf1d35a5b20c66c7b533"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArPTZConnector::connectPTZs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true, create the appropriate PTZ object (based on type name) and connect to it. </p>
<dl class="section return"><dt>Returns</dt><dd>false on first error, true if all PTZ connections were successful. </dd></dl>

</div>
</div>
<a class="anchor" id="aa7470e3af93aeeec6c169494b3dc12ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArPTZ.html">ArPTZ</a>* ArPTZConnector::findPTZ </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p></p>

</div>
</div>
<a class="anchor" id="a581670a703c3f1e1c99fcaa53c95c554"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_t ArPTZConnector::getNumPTZs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>number of PTZ objects that were created and connected to. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="cameraPTZExample_8cpp-example.html#a17">cameraPTZExample.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="a3b7815ff4ba358b80eee7ca1a7e46ad7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArPTZ.html">ArPTZ</a>* ArPTZConnector::getPTZ </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>i</em> = <code>0</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a specific PTZ object that was connected by <a class="el" href="classArPTZConnector.html#ac360c671ec7b96639bc9e73b166d0f7b" title="For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true...">connect()</a> or <a class="el" href="classArPTZConnector.html#aef27c83872cacf1d35a5b20c66c7b533" title="For each PTZ specified in program arguments, and in robot parameters with PTZAutoConnect set to true...">connectPTZs()</a>, or NULL if none exists. These are 0-indexed. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="cameraPTZExample_8cpp-example.html#a19">cameraPTZExample.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ae530b77b17d5a1e96538c1d2124b115f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classArPTZ.html">ArPTZ</a>*&gt; ArPTZConnector::getPTZs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>list of connected PTZs. 0-indexed. Pointers in the vector may be NULL if no parameters or command line arguments were given for them or that PTZ was disabled. These should be skipped when iterating on this list and not accessed. </dd></dl>

</div>
</div>
<a class="anchor" id="a080ec915958a45d6b1f3f05d589bc993"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArPTZConnector::registerPTZType </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>typeName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArPTZConnector.html#a8e388cec85450c92457ffb128b588014">ArPTZConnector::PTZCreateFunc</a> *&#160;</td>
          <td class="paramname"><em>func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Register a new PTZ type. </p>
<p><a class="el" href="classAria.html#ad99c16b5d947229d9f8e1c5b2d4cdd73" title="Initialize Aria global data struture and perform OS-specific initialization, including adding OS sign...">Aria::init()</a> registers PTZ types built in to ARIA. ArVideo::init() registers new PTZ types implemented in the ArVideo library. You may also add any new PTZ types you create. </p>

</div>
</div>
<a class="anchor" id="af2a0970004a49434fa4bf31043c3e9ec"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArPTZConnector::setMaxNumPTZs </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Change limit on number of PTZ devices. </p>
<p>You must call this before creating an <a class="el" href="classArPTZConnector.html" title="Factory for creating and configuring interfaces for pan/tilt units or camera pan/tilt/zoom control ba...">ArPTZConnector</a>, parsing command line arguments, connecting to a robot or loading a parameter file, or using ArPTZconnecor to connect to PTZ devices. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ArPTZConnector.h</li>
<li>ArPTZConnector.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArPTZConnector.html">ArPTZConnector</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
